package com.hjxr.quota.define.service;

import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hjxr.quota.define.domain.Quota;
import com.hjxr.quota.define.domain.QuotaFormula;
import com.hjxr.quota.define.dto.DimensionVo;
import com.hjxr.quota.define.dto.QuotaCreateDto;
import com.hjxr.quota.util.PageUtil;

import java.util.List;
import java.util.Map;

public interface QuotaService extends IService<Quota> {

    /**
     * 分页获取全部数据
     *
     * @param maps
     * @return
     */
    PageUtil getList(Map<String, Object> maps);

    /**
     * 根据指标所属主题id获取数据列表
     */
    PageUtil queryList(Map<String, Object> maps);

    Boolean createQuota(List<QuotaCreateDto> quotaCreateDtos);

    R saveCustomQuota(QuotaCreateDto quotaCreateDto);

    Boolean createDimension(List<DimensionVo> dimensionVos, String username);

    Map<String, Object> getQuotaAndValue(Map<String, Object> param);

    /**
     * 新增数据库来源指标
     * @param quotaCreateDto
     * @return
     */
    Boolean saveQuota(QuotaCreateDto quotaCreateDto);

    Map<String,String> getQuotaDetail(Integer id);

    List<QuotaFormula> lookForSource(Integer id);

    R executeSql(Map<String,String>params);
}
